package cn.net.cfss.fgbp.api.console.dto;

import cn.net.cfss.fgbp.api.console.constant.DeleteFlagEnum;
import cn.net.cfss.fgbp.api.console.constant.IsLeafNodeEnum;
import cn.net.cfss.fgbp.api.console.constant.IsReviewAuditEnum;
import cn.net.cfss.fgbp.api.console.constant.OrgTypeEnum;
import cn.net.cfss.fgbp.base.page.BaseDto;
import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.FgbpEnumSerializer;

import java.util.Date;
import javax.persistence.*;

@Table(name = "t_sys_organ")
public class SysOrganDto extends BaseDto {

    @Column(name = "DELETE_FLAG")
    private DeleteFlagEnum deleteFlag;

    public DeleteFlagEnum getDeleteFlag() {
        return deleteFlag;
    }

    public void setDeleteFlag(DeleteFlagEnum deleteFlag) {
        this.deleteFlag = deleteFlag;
    }

    /**
     * 名称
     */
    @Column(name = "NAME")
    private String name;

    /**
     * 级别
     */
    @Column(name = "LEVEL")
    private String level;

    /**
     * 机构编码
     */
    @Column(name = "CODE")
    private String code;

    /**
     * 父级ID
     */
    @Column(name = "PARENT_ID")
    private Long parentId;

    /**
     * 父级名称
     */
    @Column(name = "PARENT_NAME")
    private String parentName;

    /**
     * 创建人
     */
    @Column(name = "CREATE_BY")
    private String createBy;

    /**
     * 修改时间
     */
    @Column(name = "UPDATE_TIME")
    private Date updateTime;

    /**
     * 修改人
     */
    @Column(name = "UPDATE_BY")
    private String updateBy;

    /**
     * 神秘人07-10 添加新字段  实现神秘人数据隔离
     */

    /**
     * 机构类型（0：总公司，1省 2市）
     */
    @Column(name = "ORGAN_TYPE")
    @JSONField(serializeUsing = FgbpEnumSerializer.class)
    private OrgTypeEnum organType;
    /**
     * 机构地址
     */
    @Column(name = "ORGAN_ADDRESS")
    private String organAddress;
    /**
     * 联系人id
     */
    @Column(name = "LINK_PERSON_ID")
    private String linkPersonId;
    /**
     * 联系人姓名
     */
    @Column(name = "LINK_PERSON_NAME")
    private String linkPersonName;
    /**
     * 联系人电话
     */
    @Column(name = "LINK_PERSON_PHONE")
    private String linkPersonPhone;
    /**
     * 备注
     */
    @Column(name = "REMARK")
    private String remark;
    /**
     * 是否叶子节点(0:否，1是)
     */
    @Column(name = "IS_LEAF_NODE")
    @JSONField(serializeUsing = FgbpEnumSerializer.class)
    private IsLeafNodeEnum isLeafNode;

    public OrgTypeEnum getOrganType() {
        return organType;
    }

    public void setOrganType(OrgTypeEnum organType) {
        this.organType = organType;
    }

    public String getOrganAddress() {
        return organAddress;
    }

    public void setOrganAddress(String organAddress) {
        this.organAddress = organAddress;
    }

    public String getLinkPersonId() {
        return linkPersonId;
    }

    public void setLinkPersonId(String linkPersonId) {
        this.linkPersonId = linkPersonId;
    }

    public String getLinkPersonName() {
        return linkPersonName;
    }

    public void setLinkPersonName(String linkPersonName) {
        this.linkPersonName = linkPersonName;
    }

    public String getLinkPersonPhone() {
        return linkPersonPhone;
    }

    public void setLinkPersonPhone(String linkPersonPhone) {
        this.linkPersonPhone = linkPersonPhone;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public IsLeafNodeEnum getIsLeafNode() {
        return isLeafNode;
    }

    public void setIsLeafNode(IsLeafNodeEnum isLeafNode) {
        this.isLeafNode = isLeafNode;
    }

    /**
     * 获取名称
     *
     * @return NAME - 名称
     */
    public String getName() {
        return name;
    }

    /**
     * 设置名称
     *
     * @param name 名称
     */
    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }

    /**
     * 获取级别
     *
     * @return LEVEL - 级别
     */
    public String getLevel() {
        return level;
    }

    /**
     * 设置级别
     *
     * @param level 级别
     */
    public void setLevel(String level) {
        this.level = level;
    }

    /**
     * 获取父级ID
     *
     * @return PARENT_ID - 父级ID
     */
    public Long getParentId() {
        return parentId;
    }

    /**
     * 设置父级ID
     *
     * @param parentId 父级ID
     */
    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }

    /**
     * 获取创建人
     *
     * @return CREATE_BY - 创建人
     */
    public String getCreateBy() {
        return createBy;
    }

    /**
     * 设置创建人
     *
     * @param createBy 创建人
     */
    public void setCreateBy(String createBy) {
        this.createBy = createBy == null ? null : createBy.trim();
    }

    /**
     * 获取修改时间
     *
     * @return UPDATE_TIME - 修改时间
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * 设置修改时间
     *
     * @param updateTime 修改时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 获取修改人
     *
     * @return UPDATE_BY - 修改人
     */
    public String getUpdateBy() {
        return updateBy;
    }

    /**
     * 设置修改人
     *
     * @param updateBy 修改人
     */
    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy == null ? null : updateBy.trim();
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getParentName() {
        return parentName;
    }

    public void setParentName(String parentName) {
        this.parentName = parentName;
    }
}